1. Field of the Invention
The present invention relates generally to file servers, and more particularly to a file server providing an asynchronous write capability.
2. Background Art
A popular, industry standard network file access protocol is NFS. NFS Version 2 has synchronous writes. When a client wants to write, it sends a string of write requests to the server. For each write request, the server writes data and attributes to disk before returning to the client an acknowledgement of completion of the write request. The attributes include the size of the file, the client owning the file, the time the file was last modified, and pointers to locations on the disk where the new data resides. This synchronous write operation is very slow, because the server has to wait for disk I/O before beginning a next write request.
NFS Version 3 has asynchronous writes. In the asynchronous write protocol, the client sends a string of write requests to the server. For each write request, the server does a "fast write" to random access memory, and returns to the client an acknowledgment of completion before writing attributes and data to the disk. At some point, the client may send a commit request to the server. In response to the commit request, the server checks whether all of the preceding data and attributes are written to disk, and once all of the preceding data and attributes are written to disk, the server returns to the client an acknowledgement of completion. This asynchronous write protocol is much faster than a synchronous write protocol.